<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>实参可以是任何值</title>
</head>
<body>
    
</body>
</html>
<script>
    /*
        定义一个函数，判断一个数字是否是偶数，如果是返回true，否则返回false
    */

    function fun(a){
        
         
        return (a%2==0);
    }
    var result = fun(4);
    document.write(result);

    /*
        定义一个函数，可以根据半径计算一个圆的面积，并返回结果
    */

    function mianji(r){
       return r*r*3.14;
    }

    var s = mianji(4);
    document.write("<br> 面积 ≈",s);

    /*
        创建一个函数，可以在控制台中输入一个人的信息
            可以输出人的name age gender address

        实参可以是任意的数据类型，也可以是一个对象
            当我们的参数过多时，可以将参数封装到一个对象中，然后通过对象传递
    */
    function sayHello(o){
        // console.log(o);
        document.write("我是："+o.name,",年龄："+o.age,",性别："+o.gender,",我住在："+o.address);

    }

    // sayHello("孙悟空、","18、","男、","花果山");
    // 创建一个对象
    var obj ={
        name:"孙悟空",
        age:18,
        gender:"男",
        address:"花果山"
    }
    //sayHello(obj);

    /*
        实参是一个对象，也可以是一个函数
    */

    function fun2(a){
        console.log("a = "+a);
        a(obj);

    }
    fun2(sayHello);
    fun2(mianji);
    /*
        mianji();
            - 调用函数
            - 相当于使用的函数的返回值
        mianji
            - 函数对象
            - 相当于直接使用函数对象
    */

    // =============== 复习 ==============
    function xyj(s){
        document.write("我是："+s.name,",年龄："+s.age,"，性别："+s.gender);
    }

    var obje = {
        name:"唐僧",
        age:20,
        gender:"男"
    }
    xyj(obje);

    function hanshu(c){
        c(obje);
    }
    hanshu(xyj);
</script>